The amount of data representing media information, such as a still image and video image, can be extremely large. Further, transmitting digital video information over communication networks can consume large amounts of bandwidth. The cost of transmitting data from one location to another can be a function of number of bits transmitted per second. Typically, higher bit transfer rates are associated with increased cost. Higher bit rates also can progressively add to required storage capacities of memory systems, which can thereby increase storage cost. Thus, at a given quality level, it can be much more cost effective to use fewer bits, as opposed to more bits, to store digital images and videos. It therefore can be desirable to compress media data for recording, transmitting, or storing.
For a typical compression scheme, achieving higher media quality can require that more bits be used, which can, in turn, increase cost of transmission and storage. While lower bandwidth traffic may be desired, so may higher quality media.
An encoder is a device capable of encoding (e.g., coding) (and sometimes decoding) digital media data. A decoder is a device capable of decoding digital media data. A codec is a device capable of coding and/or decoding digital media data. The term codec is derived from a combination of the terms code and decode, or the terms compress and decompress. A variety of codecs are commercially available. Generally speaking, for example, codec classifications can include discrete cosine transfer codecs, fractal codecs, and wavelet codecs. An encoder or codec, by encoding the digital media data, can reduce the number of bits required to transmit signals, which can thereby reduce associated transmission costs.
During encoding of video frames of a video, bit allocation can be an integral task to achieve desired video quality while also controlling costs associated with bit usage. Assignment of a proper (e.g., correct, optimal) number of bits to each coding unit (e.g., blocks, macroblocks) can improve visual quality of the video significantly. Conventional encoding systems, using sequential encoding processes, may not assign a proper number of bits to each coding unit. As a result, video quality may be undesirably (e.g., negatively) affected and/or the costs of transmission and storage of the video may be undesirably increased.